有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (2) 个答案

  1. # 1 楼答案

    您只需将setMaximumFractionDigits设置为1。像这样:

    public class Test {
    
    public static void main(String[] args) {
        System.out.println(format(14.0184849945)); // prints '14.0'
        System.out.println(format(13)); // prints '13'
        System.out.println(format(3.5)); // prints '3.5'
        System.out.println(format(3.138136)); // prints '3.1'
    }
    
     public static String format(Number n) {
        NumberFormat format = DecimalFormat.getInstance();
        format.setRoundingMode(RoundingMode.FLOOR);
        format.setMinimumFractionDigits(0);
        format.setMaximumFractionDigits(1);
        return format.format(n);
     }
    
    }
    

    这可能对你有帮助

  2. # 2 楼答案

    试试这个:

    public static String customFormat(String pattern, double value) {
        NumberFormat nf = NumberFormat.getNumberInstance(Locale.ENGLISH);
        DecimalFormat df = (DecimalFormat)nf;
        df.applyPattern(pattern);
        return df.format(value);
    
    }
    

    电话:

    double x = Double.parseDouble(customFormat("###.#", a/b);
    

    这种方法也会对数字进行取整

    对于英语语言环境:

    ,不是十进制拆分器。这是有效的:###############

    .是十进制拆分器。这是无效的:############## (至少不适用于此区域)